home *** CD-ROM | disk | FTP | other *** search
/ PC Media 23 / PC MEDIA CD23.iso / share / prog / anubis / vmenu2.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-23  |  4.6 KB  |  145 lines

  1. // =========================================================================
  2. /* VMENU2.H
  3. ** (C) Anubis Software
  4. ** Escrito el 15 de Septiembre de 1994
  5. ** Ultima actualización 11 de Noviembre de 1994
  6. ** Revisado para eventos el 29 de  Septiembre de 1995
  7. **
  8. ** Esta libreria, proporciona un interface para poner menus en la pantalla,
  9. ** Los menus de presiana devuelven un código predeterminado según la opción
  10. ** que se haga en ellos.
  11. */
  12. // ==========================================================================
  13.  
  14. #ifndef VMENU2.H
  15. #define VMENU2.H
  16.  
  17. // NOTAS:
  18. // ------
  19. //   1.- Para usar esta librería, es imprescindible inicializar e instalar
  20. // la interrupción de gestión del ratón (Anubis Mouse Gestión) con la función
  21. // InitMouse() de la librería MOUSE.H
  22. //   2.- Es necesario, por gestión propia de la biblioteca, que los valores
  23. // que identifican a cada item de menu, empiecen a numerarse a partir de un
  24. // valor alto, que por definición se fijará como 10. Es decir, no usar
  25. // identificadores menores que diez.
  26.  
  27.  
  28.  
  29. // ------------------------------------+
  30. // Inclusión de librerias Borland C++. |
  31. // ------------------------------------+
  32. #include <dos.h>
  33. #include <mem.h>
  34. #include <string.h>
  35.  
  36. // ---------------------------------------------------------+
  37. // Inclusión de librerias Anubis Software (Anubis Librarys) |
  38. // ---------------------------------------------------------+
  39. #include "mdefs.h"
  40. #include "tecexec.h"
  41. #include "textmode.h"
  42. #include "tecbuf.h"
  43. #include "scancode.h"
  44. #include "ventana2.h"
  45.  
  46. // -----------------------------------------------------+
  47. // Definición de constantes utilizadas por la librería. |
  48. // -----------------------------------------------------+
  49. // Utilizadas en la devolución de identificadores por evnt_menuitem
  50. #define DERECHA              1
  51. #define IZQUIERDA            2
  52. // Definición de los atributos de cada menu_item
  53. #define MENU_NORMAL               1
  54. #define MENU_NO_SELECCIONABLE     2
  55. #define MENU_ACTIVABLE            4
  56. #define MENU_ACTIVADO             8
  57. #define MENU_REVERSO              0
  58. #define MENU_NORMAL               1
  59.  
  60. // -------------------------------------------+
  61. // Definición de tipos de la estructura menu. |
  62. // -------------------------------------------+
  63. typedef struct MENU_BAR_ITEM  {
  64.    char                   nombre[15];
  65.    struct MENU_BAR_ITEM   *siguiente;
  66.    struct ELECTION_WINDOW *desplegable;
  67.    BYTE                   caracteristicas;
  68.    BYTE                   posx,
  69.               posy,
  70.               longitud,
  71.               posxl;
  72.    BYTE                   color_fondo,
  73.               color_texto,
  74.               color_letra,
  75.               color_seleccionado;
  76.    char                   letra_activacion;
  77.    WORD                   tecla;
  78. } menu_bar_item;
  79.  
  80. typedef struct ELECTION_WINDOW  {
  81.    char                   nombre[15],
  82.               ai,
  83.               ad,
  84.               abi,
  85.               abd,
  86.               horizontal,
  87.               vertical;
  88.    BYTE                   caracteristicas;
  89.    struct MENU_ITEM       *item;
  90.    BYTE                   posx,
  91.               posy,
  92.               longitud,
  93.               ancho;
  94.    BYTE                   color_fondo,
  95.               color_texto,
  96.               color_letra,
  97.               color_seleccionado;
  98. } election_window;
  99.  
  100. typedef struct MENU_ITEM  {
  101.    char                   nombre[50];
  102.    BYTE                   caracteristicas;
  103.    char                   letra_activacion;
  104.    struct MENU_ITEM       *siguiente;
  105.    struct ELECTION_WINDOW *submenu;
  106.    BYTE                   color_texto,
  107.               color_letra,
  108.               color_seleccionado,
  109.               color_fondo,
  110.               code_return,
  111.               posxl;
  112. } menu_item;
  113.  
  114. typedef struct MENUS  {
  115.    char                   nombre[15];
  116.    menu_bar_item          *menu;
  117.    BYTE                   caracteristicas;
  118.    char                   letra_activacion;
  119.    BYTE                   posx,
  120.               posy;
  121.    BYTE                   color_texto,
  122.               color_fondo,
  123.               color_seleccionado,
  124.               color_letra;
  125. } menu_bar;
  126.  
  127. // ---------------------------------------+
  128. // Declaración de variables globales      |
  129. // ---------------------------------------+
  130. extern menu_bar        *EventMenuBar;              
  131.  
  132. // --------------------------------------------------------+
  133. // Declaración e implementación de las funciones del menu. |
  134. // --------------------------------------------------------+
  135. void dibujar_menu_bar(menu_bar );
  136. void dibujar_eleccion_window (election_window );
  137. void MenuBarItemEstado(menu_bar_item *,char );
  138. int evntmenuitem(election_window );
  139. int evntmenu (void);
  140. void escribe_submenus(election_window *,FILE *);
  141. void guardar_menu(char *, menu_bar );
  142. void lee_submenus(menu_item *,FILE *);
  143. void cargar_menu(char *,menu_bar *);
  144. #endif
  145.